約 6,507,770 件
https://w.atwiki.jp/fmemo/pages/16.html
ifortのコンパイルオプション g95のコンパイルオプション エンディアンを指定したいときifort g95 Fortranデバッグ用オプション 実行時に引き数を渡したいとき 整数のサイズ doループの仕様 内部入出力文 参考になるサイト ifortのコンパイルオプション 倍精度オプション $ ifort -r8 test.f90 デバッグオプション。これをつけないと配列の領域外参照をしていてもエラーにならないことがある。最適化オプションと併用するとエラーが起きるかもしれない? $ ifort -CB -traceback -g -check test.f90 書式無しファイル入出力でreclの単位を1byteにするとき。 $ ifort -assume byterecl test.f90 g95のコンパイルオプション デバッグしたいとき。 $ g95 -g -Wall -fbounds-check -ftrace=full test.f90 エンディアンを指定したいとき ifort 環境変数FORT_CONVERTn(nは数字)をBIG_ENDIANまたはLITTLE_ENDIANにすると、その装置番号で開いているファイルのエンディアンの扱いを変更できる。 $ FORT_CONVERT10=BIG_ENDIAN # 装置番号10番をBIG_ENDIANにしたいとき $ FORT_CONVERT15=LITTLE_ENDIAN # 装置番号15番をLITTLE_ENDAINにしたいとき すべてのエンディアンを一括して指定したいときは以下のオプションをつける -convert big_endian -convert little_endian g95 環境変数G95_ENDIAN=BIG, G95_ENDIAN=LITTLEを使う。 Fortranデバッグ用オプション 実行時に引き数を渡したいとき iargc, getargを使えばよい。これは非標準だが多くのコンパイラで使える。 program main implicit none integer i integer iargc, num character(128) var ! iargcは引数の数を返す関数 num = iargc() write(*,*) num ! getargは引数を返すサブルーチン do i=1,num call getarg(i,var) write(*,*) trim(var) enddo stop end program $ ./iargc_getarg.exe Anne Beth Chris 3 Anne Beth Chris ちなみに、0番目には"./iargc_getarg.exe"が入る。 参考サイトfortran備忘録 整数のサイズ integer(1)=1バイト整数 -128〜127 doループの仕様 do i=1,10 .... enddo のdoループが終わった直後のiの値は11 内部入出力文 character(64) char char= 100 200 read(char,*) num1, num2 write(*,*) "num1= ", num1 program main implicit none integer i,num character(100) fmt,cnum real(8) var i=4 num = 4 var = 1.23456 write(cnum, (i2) ) num write(*,*) trim(cnum) fmt = ( //trim(cnum)// f10.4) write(*,*) trim(fmt) write(*,fmt) var,var,var,var stop end program main 参考になるサイト Fortran縦々横々 Fortranの玉手箱
https://w.atwiki.jp/meepforme/pages/18.html
原文ページはこちら MPBとほぼ同じく、Meep導入の労力はほとんどが前提条件となるパッケージの導入に割かれます。 これにはUnixシステムへのソフトウェアインストールの知識が必要となります。 (WindowsにおいてもCygwinのようなUnix互換環境を利用することでMeepをインストールすることが可能なはずです。 しかしながら、私たちはWindowsを使用していないのでこれを試したことはありません) 並列化スーパーコンピュータにMeepを導入するにあたって、次のことに注意してください。 ほとんどのスパコンには複数のコンパイラがインストールされており、個々のライブラリが異なるコンパイラでコンパイルされています。 MeepはC++で記述されており、異なるコンパイラでコンパイルされたC++のコードを混在させることはほぼ不可能です。 特定のベンダーによるコンパイラを選び、一貫してそれを使い続けてください! GNU/Linuxへのインストール MacOS Xへのインストール Unixインストールの基本 インストールパス 設定のパス 実行のパス(ライブラリ共有) Fortranによる小技 コンパイラの選択 GNU/Linux・BSDバイナリパッケージ BLASとLAPACK(推奨) BLAS LAPACK Harminv(推奨) GNU Guile(推奨) libctl(推奨) MPI(並列マシン) HDF5(推奨) Meep 開発者のためのMeep GNU/Linuxへのインストール ほとんどのGNU/Linuxディストリビューションにおいて、Meepの必須環境はほとんど導入済みであり、また可能な限りこれらの環境をシステムの利用可能なパッケージを使用してインストールすることを強く奨めます。 コンパイル済みパッケージを利用することは、これらのインストールを心配する必要がなく、貴方の環境に合わせて調整されたパッケージを利用でき、システム更新時にパッケージもまた更新されることを意味します。 BLASおよびLAPACK(あるいはAtlas BLASの一部)、Guile、MPI、そしてHDF5は、そのすべてがほぼ確実にコンパイル済みパッケージとして利用できます。 これらについて注意すべき点として、多くのディストリビューションはパッケージを二分割している点が挙げられます。 一つはライブラリとプログラムのためのメインパッケージであり、もう一つはヘッダファイルやソフトウェア開発に必要な"devel"(デベロップ)パッケージです。 これらは両方をインストールする必要があります。 ゆえに、例えば、guileパッケージ(恐らくインストール済み)と、guil-devまたはguile-develパッケージ(恐らくインストールされていない)の両方が必要となるでしょうし、また同様のことがHDF5などでも言えます。 また、H5utilsユーテリティでh5ファイルをpngファイルにコンパイルするために、libpng-devまたはlibpng-develパッケージをインストールした方がいいかもしれません。 最も容易なインストール方法は、Meepが必要とするコンパイル済みパッケージが導入されたDebian GNU/Linux(またはUbuntu)を利用することです。 Debianにおいて、以下のコマンドを実行すればすべてのパッケージをインストールできます。 apt-get install meep h5utils (ダウンロードも参照してください) MacOS Xへのインストール MacOS Xはその基本構造がUnixであるため、原理的にはほかの全てのUnixと同様にMeepおよび必要環境をコンパイル・インストールすることができます。 しかし、依存関係やその他子細を管理してくれるMacPortsパッケージを使えばより簡単に解決できるでしょう。 (これには管理者権限が必要です) はじめに以下のことをしてください。 Appleが提供する開発・コンパイラパッケージであるXcodeを、Apple Xcodeウェブページからインストールします。 MacPortsウェブサイトにアクセスし、インストラクションに従ってMacPortsをダウンロード・インストールしてください。 Meepの必要環境をコンパイル・インストールするためにターミナル上で以下のコマンドを実行してください。 (最初に他のものの多くをインストールするため、これはGNU Fortranコンパイラのように、完了するまでしばらく時間がかかる場合があります) sudo port -v selfupdatesudo port -v install atlas guile16 hdf5-18 libpng fftw-3 (sudoコマンドはパスワードの入力を要求しますが、これは通常のログインパスワードであり、また管理者権限のあるアカウントである必要があります) その後、MacPortsがGuileヘッダファイルの名前と設定ユーテリティを変更してしまうことに起因する問題を修正する必要があります。 (この問題のため、Guileを利用してコンパイルされたすべてのプログラムについてソースレベルを変更しなくてはなりません) (ヒント Guileの互換性のない複数のバージョンをサポートする必要がある場合、標準的な名前の下に異なるディレクトリに分けて配置します) 標準名へのリンクを作成するため、以下のコマンドを実行します。 cd /opt/local/binsudo ln -s guile16 guilesudo ln -s guile16-config guile-configcd /opt/local/includesudo ln -s guile16 guilesudo ln -s libguile16.h libguile.h それでは、Harminv、Libctl、H5utils、そしてMeepパッケージをソースコードからインストールしましょう。 (これらはまだMacPortsパッケージを持っていません) これらは、標準ではその全てを$HOME/Documents/Meepディレクトリに配置し、$HOME/Documents/Meep/installディレクトリにインストールされるものと想定されています。 必要であれば適宜変更してください。 Harminvをダウンロードし、harminvディレクトリに置き、以下のコマンドを実行します。 ./configure --prefix=$HOME/Documents/Meep/install F77=gfortran-mp-4.3makemake install (注 MacPortsの新バージョンがFortranコンパイラの名前を変更した場合、本コマンドおよび以降のコマンドにおいて"gfortran-mp-4.3"を適切な名前に変更して下さい) 同様に、libctlをダウンロードし、libctlディレクトリに置き、以下のコマンドを実行します。 ./configure --prefix=$HOME/Documents/Meep/install F77=gfortran-mp-4.3makemake install h5utilsをダウンロードし、h5utilsディレクトリに置き、以下のコマンドを実行します。 ./configure CPPFLAGS="-I/opt/local/include" LDFLAGS="-L/opt/local/lib" --prefix=$HOME/Documents/Meep/installmakemake install 最後に、Meepをダウンロードし、meepディレクトリに置き、以下のコマンドを実行します。 export PATH="$HOME/Documents/Meep/install/bin $PATH"./configure CPPFLAGS="-I/opt/local/include -I$HOME/Documents/Meep/install/include" LDFLAGS="-L/opt/local/lib -L$HOME/Documents/Meep/install/lib" --with-libctl=$HOME/Documents/Meep/install/share/libctl --prefix=$HOME/Documents/Meep/install F77=gfortran-mp-4.3makemake install これらの手順を完了すれば、meepコマンドによりMeepを実行できるようになります。 新しくターミナルを起動する場合は、前述の"exprt PATH"コマンドを再実行するか、より理想的には引数に"$HOME/.profile"ファイルを追加して実行する必要があるでしょう。 (セルフテストを行いたい場合にはmeepディレクトリで"make check"コマンドを実行できます) Unixインストールの基本 インストールパス まず、Unixにソフトウェアをインストールする際に大事なこと、特に標準でない場所にインストールする際のことについて復習しておきましょう。 (この問題は何もMeepに限ったことではありませんが、ユーザーにとっては非常に混乱を招きやすい話題であります) 本ソフトウェアを含む、後述のソフトのほとんどは標準では"/usr/local"ディレクトリ下にインストールされます。 例えばライブラリは"/usr/local/lib"に、プログラムは"/usr/local/bin"などにインストールされることになります。 ルート権限がない場合、"$HOME/install"ディレクトリにインストールする必要があります("/install"はホームディレクトリのサブディレクトリです)。 後述のプログラムのほとんどはGNU-style configureスクリプトを利用しており、恐らくはプログラムに対し次のような設定をすることになるでしょう。 ./configure --prefix=$HOME/install "$HOME/install/lib"などのディレクトリは必要に応じて自動的に作成されます。 設定のパス 実行のパス(ライブラリ共有) Fortranによる小技 コンパイラの選択 GNU/Linux・BSDバイナリパッケージ BLASとLAPACK(推奨) BLAS LAPACK Harminv(推奨) GNU Guile(推奨) libctl(推奨) MPI(並列マシン) HDF5(推奨) Meep 開発者のためのMeep
https://w.atwiki.jp/maseken/pages/23.html
Fortranについて. 注意点,過去に困ったことやその解決法などをメモ せっかくためた経験値をムダにしないために. Fortran Fortranとは, 間瀬研では,「Developer Studio」というソフトを使う. 使い方に関しては,マニュアル参照 適宜マニュアルで関数の使い方を調べながら使うといいと思う 基本的な関数 fopen ファイルを開く fid = fopen(...) fscanf データを読む A = fscanf(fid,....) surf plot 詳しい使い方はマニュアル参照
https://w.atwiki.jp/pspt/pages/237.html
FORTRAN 時代遅れ?いいえピチピチです。 FORTRAN FORTRANの魅力メリット デメリット リファレンス(入門)何も動作しないプログラム コメント文 変数に数字を代入する 文字を画面に出力する 簡単な計算をする 少し複雑な計算をする 変数の種類を変更する(型宣言) data文を利用して変数に値を代入する 端末から文字を入力する DO文 (繰り返し) IF文 (条件分岐)上のソースの簡易版 配列 FORTRANの魅力 メリット およそ50年前に開発された言語でありながら科学の分野では今なお現役である。 科学分野で扱われるだけあって計算が速い。 Cより習得がやや楽。 数式を書くのが楽。 変数をわざわざ宣言しなくてもよい。 美しい。 デメリット 無料の総合開発環境の質が悪い。 現在では一般にあまり使用されていない言語であるから習得しても見返りは少ない。 美しくない。 みんな大好きHello world program main print *,"Hello, World!" end program main stop end リファレンス(入門) 大学の講義「アルゴリズムとプログラミングⅠ」で配布された教科書を基に作成。特に断りがなければ1~8カラムは省略されているものとする。 何も動作しないプログラム プログラムの必要最低限の要素を確認しよう。 stop end コメント文 c 先頭がcで始まる一行はコメント文です。 stop end 変数に数字を代入する FORTRANではわざわざ変数を宣言する必要はありません。 a=1.0 b=1.1 stop end 文字を画面に出力する ここでは変数a,bそれぞれに代入した値を出力する。 文字列を出力する際は (クォーテーション)で囲む必要がある。 a=1.0 b=1.1 print *, a,b, test stop end 簡単な計算をする 足し算 + 引き算 - 掛け算 * 割り算 / 累乗 ** ここでは変数cにaとbを足し算した値を代入する。 a=1.0 b=1.1 solution=a+b print *, solution 少し複雑な計算をする ここでは解の公式を例とする。ただし±のうち+の方のみを再現する。 括弧は()のみ扱える。 平方根を返す関数はsqrt(x)。 a=1.0 b=-1.0 c=-1.0 x=(-b+sqrt(b**2-4*a*c))/(2*a) print *, x stop end 変数の種類を変更する(型宣言) 型 宣言 備考 整数型 integer I~N及びi~nで始まる変数はデフォルトでこれ 実数型 real I~N及びi~nで始まらない変数はデフォルトでこれ 文字型 character*n nに数字を入れて最大の文字数を指定できる 複素数型 complex 論理変数 logical 有効数字の桁数を増やしたければ型宣言のすぐ後ろに「*n」を添えればよい。(桁数がn倍になる) real number1 real*2 number2 number1=3.14 number2=3.14159265 print *, number1,number2 stop end data文を利用して変数に値を代入する data文を利用すれば一行で多くの変数に値を代入できる。 //内に代入したい数値を対応する通り並べる。 data a,b /1.0,1.1/ print *, a,b stop end 端末から文字を入力する read(*,*) a print *,a stop end DO文 (繰り返し) 下のソースは1から10までの連続した自然数の総和を出力するもの。 sum=0 do i=1,10 sum=sum+i end do print *,sum stop end IF文 (条件分岐) .EQ. = .NE. ≠ .LT. < .GT. > .LE. ≦ .GE. ≧ 条件式(等式や不等式)を用意しそれが満たされるか満たされないかで分岐する。 条件式を記述する際は上の表を参考にせよ。 以下のソースは端末からの入力が5.0以上かどうかを示す。 read(*,*) a if(a.GE.5.0) then print *, OK! end if else print *, NO end if stop end 上のソースの簡易版 read(*,*) a if(a.GE.5.0) print *, OK! else print *, NO stop end 配列 配列とは添え字付き変数に対応するものである。 ここでは配列の値の代入にdata文を、出力にDO文を用いた。 dimension abc(3) data abc/1.0,1.1,1.2/ do i=1,3 print *, i= ,i, abc= ,abc(i) end do stop end
https://w.atwiki.jp/steelwind/pages/11.html
MinGW32 概要 Windows上のgcc環境 cygwinと違い、ライブラリが必要なく、高速。 http //www.mingw.org/ インストール MinGW のインストール用ファイルを取得 MinGWのページ URL http //www.mingw.org/ からたどって URL http //sourceforge.net/project/showfiles.php?group_id=2435 のあたりから MinGW-5.1.3.exeを取得。 基本すべてデフォルトでOK MSYS 概要 gccを使って開発をする際にconfigureスクリプトを実行するために最低限必要な UNIX like OSのコマンドを提供してくれる環境。 http //www.mingw.org/ インストール MinGW を MSYS より先にインストールしてある場合はここで MinGW をインストールした場所を答えることで /etc/fstab ( D \MSYS\1.0\etc\fstab )などの設定を適切に行ってくれる。 This is a post install process that will try to normalize between your MinGW install if any as well as your previous MSYS installs if any. I don t have any traps as aborts will not hurt anything. Do you wish to continue with the post install? [yn ] y Do you have MinGW installed? [yn ] y Please answer the following in the form of c /foo/bar. Where is your MinGW installation? E /MinGW MinGW をインストールしていないならば最初の質問で「n」と答えて終了して構わない。そのかわり自分で必要な設定を行う必要がある。
https://w.atwiki.jp/slab/pages/20.html
参考サイト Fortran入門
https://w.atwiki.jp/dndrdcd/pages/44.html
【FORTRAN】 基本情報 種族: ドラゴン クラス: 龍態:レッド・ドラゴン 人態:ウォリアー 背景: レッド・ドラゴン 出身: アンダーマウンテン 属性: 混沌・悪 人物像 人格的特徴: 私の力は強く命は長い。だが強い力も長い命も、不死を求める私の欲望をいっそうかき立てるだけなのだ。 英雄にはその力を試す敵が要る。して、すべての師匠が親切とは限らず、厳しくせねば身につかぬ教えもある。今こそ教えてやろう。 尊ぶもの: 最も強き者のみが生存し繫栄する。それゆえ私は最も強き者とならねばならぬ。 関わり深いもの: 近くに住んでいるある者は、面白い質問をしたり、変わったことを思いついたりする。気になる奴だ。 弱み: 私は機会さえあれば腹いっぱい食べてから長い深い眠りにつく。 設定 正体はレッド・ドラゴン ドラゴンの姿を《龍態》、人型を《人態》と呼ぶ。 レッド・ドラゴンのデータはモンスターズマニュアルに準ずるが、以下のルールを追加キャラクターレベル=レッド・ドラゴンの脅威度として成長する 人態のクラスはサイドキックのデータを使用する 生得呪文は3レベルから得る。脅威度÷3が修得可能な生得呪文のレベルなので、3レベルで1レベル呪文を習得できる理屈。 メモ アンダーマウンテン(狂える魔道士の迷宮16層)で孵ったレッドドラゴンの卵。 名前の由来はプログラム言語の「FORTRAN((FORMULA TRANSLATION)」から
https://w.atwiki.jp/y0sota/pages/38.html
Fortran入門 http //www.nag-j.co.jp/fortran/index.html http //www5.atpages.jp/~enoyaruk/fortran/index.html
https://w.atwiki.jp/daisukem/pages/27.html
fortran 90 tips 最適化FORTRAN90 言語 Fortran 90 骨の髄まで
https://w.atwiki.jp/bambooflow/pages/327.html
ODEインストール:Windows+Qt+MinGW QtSDKに入っているMinGWでのコンパイル方法をメモします。 cd ode-0.11.1/build premake4 gmake cd gmake このフォルダに生成されたMakefileを編集します。 編集する場所は6行目あたりです。 ライブラリ生成を、Release+小数点精度(倍精度)+静的ライブラリ(lib)とするならば、 ifndef config # config=debugsingledll config=releasedoublelib endif とします。 他、以下から選択できます。 debugsingledll releasesingledll debugsinglelib releasesinglelib debugdoubledll releasedoubledll debugdoublelib releasedoublelib コンパイルにはいります。 ode-0.11.1/build/gmake以下で、 set path=%path%;c \QtSDK\mingw\bin mingw32-make CC=gcc CXX=g++ コンパイルが成功すると ode-0.11.1/lib/ReleaseDoubleLib/libode_double.a にライブラリが生成されます。 .proの設定 以下を追加する必要があります。 DEFINES += dDOUBLE win32 INCLUDEPATH += \ C /develop/ode-0.11.1/include win32 LIBS += \ C /develop/ode-0.11.1/lib/ReleaseDoubleLib/libode_double.a